home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / misc / emu / QDOS4Amiga.readme < prev    next >
Text File  |  1992-11-08  |  21KB  |  423 lines

  1. Short: alternative multitasking operating system
  2.  
  3.           QDOS for the AMIGA
  4.           ------------------
  5.  
  6. 1) Introduction and motivation
  7. ------------------------------
  8.  
  9. I have bought my first QL at 1984 in Berlin, and since this time the
  10. QL has proofed to be a very handy tool for all kind of computer work.
  11. But unfortunately this computer was not very popular, it was difficult
  12. to get anything (software and hardware) for the QL, and without the
  13. usergroup, I would have given up very early. With the advent of the
  14. ATARI 520 ST and the increasing popularity of the IBM clones the
  15. QL became more and more uninteresting for new users, and Sinclair
  16. lost interest in the computer himself.
  17. So far so bad, but after checking the possible alternatives, there
  18. was actually no computer which was really much better than the QL.
  19. So the Idea came up to build a new computer with 68000 CPU and
  20. a reasonable keyboard. But why building a new computer, when you
  21. can buy one ?
  22. For this purpose the AMIGA seemed to be best suited. It is
  23. highly expandable and has many hardware features allready on board.
  24. Furthermore, it seemed to be more easy to emulate the QL screen
  25. on the AMIGA, than on the ATARI.
  26.  
  27.  
  28.  
  29. 2) What has been done up to now
  30. -------------------------------
  31.  
  32. The gamma version was made from a disassembly of the JS-ROM,
  33. which was expanded in some features and testet on the QL.
  34. The QL-screen emulation is performed using the Blitter, which
  35. makes it a very fast process, costing nearly no CPU time.
  36. The keyboard is emulated in most features (including Ctrl-Alt-7)
  37. and Keyrow (using the IPC) is working on all programs.
  38. Additionaly a default trap handler has been installed, which will
  39. tell you what happend at what address, and return to SuperBASIC.
  40. The program must be assembled on the QL using the GST macro assembler.
  41. NO OTHER assembler can be used (I have tested some Amiga assembler,
  42. but there is no Assembler, which has a linker and is really bug free.
  43. The best result gave the Atztec-C assembler. It was able to assemble
  44. all files, but the linker crashed the system when attempting to link the
  45. QDOS file.)
  46. Apart from the MicroDriVes and the NETwork all standard QL devices are
  47. implemented: CON_ , SCR_ , PIPE_ , SER1 , PAR , FLPn_ . The RAMdisks are
  48. running too, but it is only included in the ! Friends only Version !
  49. The clock should run too, if you use the system routines.
  50. The T.Tebby toolkit is working also, when TAS instructions are replaced.
  51. * Additionally in This Version  (3.01) a JANus device driver is  included
  52. * which allows you to use the Harddisk from the IBM Sidecar.
  53. ** A FLoPpy driver accomplishes the system in this release (3.03)
  54. ** The Amiga mouse is integrated, QRAM (pointer interface) and MPAINT
  55. ** have proofed to work correctly with it.
  56.  
  57. Disks supplied:
  58. Version 3.03 comes on 3 disks:
  59. Disk 1 is a Amiga BOOT disk, it contains this document (Alpha_QDOS_TXT)
  60.        an introduction to QDOS (QDOS_INTRO) an old description for the
  61.        RK00 Version (RK00_INFO) and the QDOS system, ready to BOOT.
  62.        Additionally, some Programs for File transfer and other utilities
  63.        are included in executable and source form.
  64. Disk 2 is in QDOS format and contains the Assembler source for QDOS.
  65.        This Disk should be copied using INDEX synchronization
  66.        and nibble mode or the QDOS DISKCOPY.
  67. Disk 3 is also in QDOS format and contains some Utilities and patched
  68.        programs. Specifically programs to support Filetransfer,
  69.        TAS replacing and using the PROSPERO compilers.
  70.  
  71. NOTE ! if you give this Disk to other persons, please copy all 3 disks !
  72. If you possess a "Friends only" version, then delete the Files
  73. TOOLKIT_CDE and MIXTOOL_CDE and change the startup-sequence accordingly
  74. before giving this Disk to others.
  75.  
  76.  
  77. Files supplied:
  78. *** In this sector there are a lot of changes since the early versions.
  79. *** Mostly the Batch files have become redundant.
  80. *** But I am too lazy to update this list. So here it is:
  81.  
  82. QDOS                          The complete running QDOS
  83. TKamiga_CDE                   The T.Tebby toolkit without TAS instructions
  84.                               !!! Friends only !!!
  85. MIXTOOL_CDE                   A combined toolkit including EDITOR
  86.                               and RAMdisk and QMON and Qliberator
  87.                               runtime library
  88.                               !!! Friends only !!!
  89. QL_EXTRA                      batch file to start the QL-emulator
  90.                               in fast memory
  91.  
  92. S/startup-sequence            start the QDOS 512k system
  93. AllocAbs                      used to allocate Memory
  94. Lbytes                        used to load files into memory
  95. Load_Qdos                     This programm moves QDOS from $30000
  96.                               to $00000, sets the clock and memory
  97.                               boundaries. The full format is:
  98.                               Load_Qdos RAMbottom RAMtop SSP
  99.                               All addresses are hex numbers,
  100.                               where RAMbottom and RAMtop should lie
  101.                               in Fast memory, and no care must be taken
  102.                               about Amigados. SSP is the Supervisor
  103.                               Stackpointer and must lie outside the
  104.                               scratch area between RAMbottom and RAMtop
  105. SerQl                         A filetransfer program which can be used
  106.                               to send files from the QL to the Amiga
  107.                               via the serial port. The Handshake lines
  108.                               must be connected for this.
  109.                               Allthough the programm works correct on
  110.                               the Amiga side, it may be difficuld to
  111.                               send files from the Amiga to the QL.
  112.                               I had not the time to search for the
  113.                               reason, but i think the Problem must
  114.                               be the QC compiler on the QL.
  115.                               You can transfer files from the Amiga
  116.                               to the QL nevertheless by sending them
  117.                               with the Amiga SERQL and receiving them
  118.                               with
  119.                               COPY SER2hr to RAM1_hilf
  120.                               and removing the additional bytes in a text
  121.                               editor.
  122.                               Note, that you MUST use the Ramdisk for
  123.                               long files on BOTH computers.
  124.  
  125. SRC/SerQL.C                   Amiga version of SERQL (Aztec C)
  126. SRC/SerQL_C                   QL version of SERQL (QC)
  127.  
  128. SRC/Load_QDOS.ASM             (use Aztec C assembler)
  129. flp2_TAS_replacer_BAS         Superbasic program to replace the
  130.                               TAS instructions in any program.
  131.  
  132. flp1_JAN_ASM                  janus device driver source, QL side
  133. JAN_CDE                       janus device driver binary, QL side
  134. PC/QLDISK.PAS                 Turbo pascal source for IBM part
  135. PC/QLDISK.COM                 compiled version (TURBO 3.0 !)
  136. PC/AUTOEXEC.BAT               example for IBM
  137.  
  138. flp2_QLTRA_BAS                file transfer program QL->QLamiga, source
  139. flp2_QLTRA_OBJ                compiled version (4800 BAUD  !!!)
  140.  
  141.  
  142.  
  143. 3) Known Bugs !!!
  144. -----------------
  145.  
  146. To Start with the hardest one: The Amiga hardware does not allow
  147. the CPU to get two contigues bus cycles. This means, that any
  148. read - modify - write cycle is dammed to fail.  More precise:
  149. the TAS instruction does not work ! neither in Chip nor in Fast memory !
  150. To get around this problem, the line $F... emulator was programed
  151. to emulate the TAS instruction. Now you just need to run TAS_replacer_BAS
  152. on any program which contains TAS instructions to replace them by
  153. the appropriate line $F... instruction.
  154. So far, so good, but the sideeffect may be as follows:
  155. One day you want to give a program to a friend with a normal QL.
  156. If your program needs a library, which contains TAS instructions,
  157. then it will now contain line $F... instructions. On a normal QL
  158. this will cause a total system crash. Thats it !
  159.  
  160. The Next Bug is perhaps correlated with this. The RAMdisk (QRAM)
  161. can not be formatted correctly, although i have applied TAS_replacer_BAS
  162. to it. This should not bother you too much, since you can still use it.
  163. But if you try to use the Qliberator compiler with an unformatted
  164. RAMdisk, you may have some trouble. Just try some other RAMdisks.
  165. !!! The RAMdisk is only included on the friends only Version !!!
  166.  
  167. ** The obscure Memory Management Bugs are fixed in this Version (3.03)
  168. *** The Slave Block Bug is fixed in 3.10 by M.J. Swift
  169.  
  170. For those, who want to program amiga hardware under QDOS, I want to
  171. give one essential hint:
  172. Interrupts and DMA are very very very critical. You MUST enable your
  173. interrupts directly after starting QDOS.
  174. You should never disable interrupts in INTENA. Use 'OR #$0700,SR' instead.
  175. You should reset interrupt requests only once and only those which
  176. really have occured.
  177. If you fail to do so, then NOTHING will work, even if you don't need
  178. interrupts !
  179.  
  180. A last remark must be made upon the keyboard. You should try to buy a
  181. computer in Germany with an English keyboard. Hopeless !
  182. This stupid selling staff can not imagine, that not everybody who buys
  183. a computer is a secretary which needs ä,ö,ü in the proper place.
  184. So you have always the pleasure to search for @,[,],{,},_,Y,Z and many
  185. other commonly used keys. But this does only bother those, which
  186. must write programs for computers, and not the so called "User"
  187. which is a much better, this means richer, person.
  188. Okay, what i want to tell you is, that the keyboard emulation is only
  189. good for German Amigas and not for English Amigas.
  190. For the first time you can use ALTKEY to redifine some keys.
  191. But over a long range you have to change the QLASC... tables
  192. in the QDOS_ASM file and generate a new QDOS version.
  193. The sideffect is, that KEYROW may contain some minor inconsistencies.
  194.  
  195. * The keyboard emulation has proofed to fail on certain keyboards.
  196. * This Bug should be fixed now !
  197.  
  198. * The Ctrl-C , Ctrl-spc , Ctrl-F5 'bug' is fixed  now !
  199.  
  200. *** An english keyboard emulation is included. A source for this Emulation
  201. *** can be found in the "SRC" directory of this Disk. it is named
  202. *** QLASCII_asm. You should not try to assemble it on the Amiga, since
  203. *** this will not produce the correct object code.
  204.  
  205. If you have fixed a bug, I will be greatfull when you can send me the
  206. corrected SOURCES or inform me about the reasons.
  207.  
  208. 4) New standards
  209. ----------------
  210.  
  211. (Read also RK00_INFO !)
  212. Changes to the System variables:
  213.  
  214. $28002              Flag byte, now contains the following flags:
  215.                      Bit 0 : 0 => OPEN path enable
  216.                      Bit 1 : 0 => OV error disable
  217.                      Bit 2 : 1 => No clearing of memory on MM.ALCHP
  218.  
  219. $28003              Is the contents of CIA-A ICR, updated by interrupt
  220.                     from the Keyboard server. The new value is ORed to
  221.                     the old one.
  222.  
  223. $280A2              in previous versions this was the Caps lock routine
  224.                     address. Since this was never used, i have changed
  225.                     its meaning. It is now a long word offset to the
  226.                     system clock. should not bother you.
  227.  
  228. $280F2              Priority increment of the QL screen emulator.
  229.                     the following byte is increased by 2*contents
  230.                     of this byte, if the result is negative, the
  231.                     next plane (green or red) is updated.
  232.                     Default is 20dez. This will not cost any CPU time.
  233.                     A value of 80dez. will cost 20% CPU time,
  234.                     and a value of 127dez. will cost 30% CPU time.
  235.                     If you set this byte to zero, then the emulation
  236.                     is switched of after the next vertical blank int.
  237.  
  238. $280F3              actual QL screen emulator priority.
  239.                     This byte should be set to zero too, when switching
  240.                     off the screen emulation.
  241.  
  242. $280F4              Address of Blitter interrupt server.
  243.                     If you have switched off the QL screen emulation,
  244.                     you must wait until this Long word contains 0.
  245.                     Afterwards you can link in your own server for
  246.                     Blitter interrupts here.
  247.  
  248. Any program which needs the Amiga hardware interrupts can use
  249. the old MT.LXINT system call. This now handles all interrupts
  250. except the Blitter, Keyboard  and 50 Hz interrupt.
  251. You must read the INTREQ register by your own to decide what to do.
  252. If it was the interrupt you was waiting for, you have to reset it by
  253. your own. You will get the CPU with all interrupts masked out, and
  254. you should not change this status.
  255.  
  256. * The Amiga bitplanes are starting at $18000.
  257. ** The Floppy controller uses the Memory from $10000  on.
  258. * Additional bitplanes can claim the Memory between $14000 - $17FFF.
  259. *** A new Manager Trap is introduced: TRAP #1 with D0 set to $27
  260. *** and D1 containing the address of the new Keyboard table
  261. *** will set foreign Language keyboard tables.
  262.  
  263. ****************************************************************
  264.  
  265. * 5) The JANus device driver
  266. * ---------------------------
  267. In the Gamma release, you had no possibility to save or load
  268. programs from a permanent medium. In the Beta release, I had
  269. included a very simple directory device driver which enables you to
  270. use the IBM-harddisk on the Bridgeboard. Of course you can make
  271. use of this program only, if you posses the IBM bridgeboard (sidecar)
  272. and a  Harddisk in one of the IBM compatible slots.
  273. (But the floppy on the  IBM will give you  at least 360K.)
  274. The JANus devicedriver expects the program QLDISK.COM running on
  275. the IBM side. This program is also included in source format (QLDISK.PAS)
  276. and must be compiled with TURBO pascal 3.0 !
  277. any filename has the form:         JAN1_name_ext
  278. where 1[,2,3,4,5,6,7,8] has no function.
  279. The extension is converted from _ext  to .ext automatically.
  280. Names consist  of capital letters only and must not be longer than 8
  281. characters.
  282. Subdirectories and file conventions of MS-DOS are used.
  283. If you try to read MS-DOS files from QDOS, you will experience some
  284. trouble, since QDOS needs a 64 byte fileheader, which is of course
  285. not present in MS-DOS files. The other way around, you will find
  286. 64 additional bytes at the top of any QDOS file, when you try to read
  287. QDOS files from the  IBM side.
  288. additional BASIC extensions:
  289. CHDIR "path"                  changes the  subdirectory path (CD on IBM)
  290. MKDIR "name"                  make subdirectory (MKDIR on IBM)
  291. RMDIR "name"                  remove subdirectory (RMDIR on IBM)
  292. SHODIR                        display the actual path at channel #1
  293. JAN_USE "abc"                 set up a new device name for JAN (eg MDV)
  294.  
  295. For transfer of files between the QL and QDOS on the amiga you
  296. can use the program QLTRA_BAS or QLTRA_OBJ.
  297. This program transferes a complete disk.
  298. Up to now you should not try to operate  on more than 4800 Baud.
  299. It is  also essential, that  you don't type anything on the keyboard
  300. while files are transfered. This is because interrupts from the serial
  301. port are disabled while processing the keyboard interrupts.
  302.  
  303. ** Access of MS-DOS files is possible in the new Version using
  304. ** a filename which contains a 'commercial at @' (eg. D:\@AUTOEXEC.BAT)
  305. ** A backwards searchlist is established, which scans all parent directories
  306. ** for OPEN old file QDOS calls
  307. ****************************************************************
  308. ****************************************************************
  309. Version 3.03 comes with a floppy device driver for QDOS floppies.
  310. This device driver is not the fastest one, and there are lots of
  311. bugs, but for the first time you can use it.
  312. The Format of a QDOS filename on the floppydisk is FLPn_name_ext.
  313. Where FLPn_ is the device name. FLP1_ stands for DF0:, FLP2_ for DF1:
  314. and so on (sorry, QDOS convention was first). Filenames can consist of
  315. up to 32 characters. The *D2D random access convention is emulated in
  316. full scale, so that CP/M and MS-DOS emulator should work.
  317. Additional extensions:
  318. DISKCOPY
  319.    make a track to track copy from FLP1_ to FLP2_
  320.    You should use DISKCOPY instead of FORMATing a Disk, since
  321.    Formating a Disk takes 8 minutes !
  322. RQDISK drive,side,track
  323.    Read one Track from a drive to the Trackbuffer ($10000) and
  324.    convert from MFM to ASCII
  325.  
  326. Bugs and Hints:
  327.  
  328. Again the hardest Bug first:
  329. *** This Bug has been fixed in Version 3.10 by M.J. Swift.
  330. You can read QDOS disks and write files on Disk, and do everything
  331. like on the QL. But when you try to read a Disk which was written on
  332. the Amiga using a normal QL, you will not be able to read anything !
  333. This is because the CRC calculation routine in my driver does not
  334. work correct. I have tested every possible combination, but i couln't
  335. find the bug. If you are able to fix it, please let me know!
  336.  
  337. Some combination of Floppy drives have proofed to give unreadable
  338. Disks. This depends much on the drives of your Amiga AND the drives
  339. of your QL. Up to now, my Amiga was able to read every QDOS disk,
  340. but a friend had trouble to read the same disks.
  341.  
  342. A little hint:
  343. Normally QDOS scatters the sectors of adjencent blocks on different
  344. sides of one disk. This doesn't matter with a WD1770, but it makes reading
  345. a Disk on the Amiga unneccessary slow. You can gain a factor of 3 in speed,
  346. when you FORMAT a Disk on the Amiga (afterwards just make a DISKCOPY from
  347. this Disk) and copy the files from the original QDOS Disk to the Amiga disk.
  348.  
  349. *************************************************************
  350.  
  351. 6) What has to be done next
  352. ----------------------------
  353.  
  354. These are the most important things to do, but unfortunately
  355. I don't have enough time to do this all by myself. I am writing
  356. my doctor thesis in Physics, and this will cost most of my time.
  357. So I am looking for people who are interested in this project
  358. and are able and willing to do some work for it.
  359. I think, it is best you contact me to get information about a specific
  360. part of the project. So you can avoid to invent the wheel a second
  361. time. You can reach me by post mail:
  362. Rainer Kowallik, Eisackstr. 14, 1000 Berlin(W) 62 (Germany)
  363. By Phone:
  364. (Germany) 030 855 866 5
  365. By EAN mail
  366. Kowallik@vax@hmi@dbp.de              or in the new form:
  367. S=KOWALLIK;OU=VAX;P=HMI;A=DBP;C=DE
  368.  
  369. ALL PROGRAMS HAVE TO HAVE THE FORMAT OF A STANDARD QL-ROM.
  370. NO OTHER INTERFACE THAN A ROM TOOLKIT SHOULD BE USED !
  371.  
  372. Subject                                              programmer
  373. -------------------------------------------------------------------------
  374. An adaption of the Toolkit network server which    |
  375. uses the CD bit of the serial port (CIA-B, PRA #5) |
  376. The transmission speed should be changeble         |
  377. -------------------------------------------------------------------------
  378. A device driver for the Harddisk DH0, using        |
  379. subdirectories and fileformat of Amigados          |
  380. -------------------------------------------------------------------------
  381. New SCR_ and CON_ drivers which can use all        |
  382. features of the Amiga (32 colours, extra halfbright|
  383. Interlace, overscan)                               |
  384. -------------------------------------------------------------------------
  385. QDOS Disk Read and write access under Amiga DOS    |
  386. -------------------------------------------------------------------------
  387.  
  388.  
  389. 8) Copyright statement :
  390. ------------------------
  391.  
  392. Since I have really spend much time on develloping this QDOS emulator,
  393. I think that it is not imoral to claim this emulator as my program.
  394. Nevertheless QDOS and the related names are protected by the ones
  395. who have now the rights (is it sinclair again, or amstrad, or t.tebby
  396. or who or what ?)
  397. But this should not stop you from spreading this disk, as long as you
  398. are shure, that no commercial use is made from all that stuff.
  399. I am shure, that these  programs are only interesting for people
  400. who have or have had a QL or THOR, and so have allready paid for this
  401. software. Those who are working with these programs and don't posses
  402. a QL are invited to buy a second hand QL or so.
  403.  
  404. 9) Acknoledgement
  405. -----------------
  406.  
  407. Thanks to
  408. Wolfgang Schroeder and Joern Ryba for discussion,
  409. Boris Jakubith and Mathias Leidig for the CRC generator,
  410. Andreas Ihlenfeld for his Keyrow MT.IPCOM,
  411. M.J.Swift for all of his Bug fixes
  412.  
  413.  
  414. and you for your interest.
  415.  
  416.  
  417.                  Send bug-reports and/or suggestions to:
  418.  
  419.                               Martin Berndt
  420.                            Fr.-Alfred-Str. 115
  421.                              4100 Duisburg 14
  422.                                  Germany
  423.